﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using GeneralLibs;
using Lists;
using BasicForms;

namespace ReportGenerators.BanHang.ThongKeBanhangNhanh
{
    public partial class FrmThongKeBanHangNhanh : BasicForms.FrmThamSoBaoCao
    {
        public FrmThongKeBanHangNhanh()
        {
            InitializeComponent();
        }

        private void FrmThongKeBanHangNhanh_Load(object sender, EventArgs e)
        {
            if (DesignMode) return;
            cmbKyBaoCao.SelectedIndex = 19;
        }
        protected override void PrepareDataForReport()
        {
            if (dtNgayBatDau.DateTime >= dtNgayKetThuc.DateTime)
            {
                MessageBox.Show("Ngày bắt đầu phải trước ngày kết thúc");
                return;
            }
            if (cmbKyBaoCao.SelectedItem == null)
            {
                MessageBox.Show("Phải chọn kỳ báo cáo");
                return;
            }
            DateTime ngayBatDau = dtNgayBatDau.DateTime;
            DateTime ngayKetThuc = dtNgayKetThuc.DateTime;
            if(!(FrmThamSoBaoCao.CheckKyBaoCaoVaThoiDiemKhoaSo(dtNgayBatDau, dtNgayKetThuc))) return;
            string kyBaoCao = cmbKyBaoCao.Text;
            if (kyBaoCao == "Cả năm") kyBaoCao = "Năm " + GeneralLibs.Config.NamTaiChinh.ToString();
            else if (kyBaoCao == "Tùy chọn") kyBaoCao = string.Format("Từ ngày {0}/{1}/{2} đến ngày {3}/{4}/{5}",
                                       ngayBatDau.Day, ngayBatDau.Month, ngayBatDau.Year,
                                       ngayKetThuc.Day, ngayKetThuc.Month, ngayKetThuc.Year);


          
            SqlConnection con = new SqlConnection(GeneralLibs.LocalSettings.ConnectString);
            ReportTemplates.BanHang.ThongKeBanHangNhanh.DsThongKeBanHangNhanh ds = new ReportTemplates.BanHang.ThongKeBanHangNhanh.DsThongKeBanHangNhanh();
            try
            {
                con.Open();
                SqlCommand cmd = con.CreateCommand();
                SqlDataAdapter da = null;

                cmd.CommandText = "Select_ThongTinDoanhNghiep";
                cmd.Parameters.Clear();
                da = new SqlDataAdapter(cmd);
                da.Fill(ds.ThongTinDoanhNghiep);

                DataTable dtChiTietSoThongKeBanHangNhanh = ds.ChiTietSoThongKeBanHangNhanh;
                dtChiTietSoThongKeBanHangNhanh.Rows.Add(dtChiTietSoThongKeBanHangNhanh.NewRow());
                dtChiTietSoThongKeBanHangNhanh.Rows[0]["KyBaoCao"] = _KyBaoCao.Ten;
               
                            
                cmd.CommandText = "Select_KhoanMucThongKeBanHangNhanh";
                cmd.Parameters.Clear();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("NgayBatDau", ngayBatDau);
                cmd.Parameters.AddWithValue("NgayKetThuc", ngayKetThuc);
                da = new SqlDataAdapter(cmd);
                da.Fill(ds.KhoanMucThongKeBanHangNhanh);               

                _Report = new ReportTemplates.BanHang.ThongKeBanHangNhanh.RptThongKeBanHangNhanh();
                _Report.SetDataSource(ds);
            }
            catch (Exception ex)
            {
                BasicForms.FrmExceptionNotifier.ShowAndLog(ex);
            }
            finally
            {
                con.Close();
            }
        }
        protected override void PrintReport()
        {
            if (_Report != null)
            {
                ReportTemplates.FrmPrintReport frm = new ReportTemplates.FrmPrintReport(_Report, "Thống kê bán hàng");
                frm.Show();
            }
        }
    }
}
